Command streams are frequently used to carry out graphical tasks, such as displaying shapes on a monitor. Commands in the command streams use resources, such as video memory. Multiple command streams may share the same common resource. However, some situations require commands in one command stream to be performed using the common resource before commands in another command stream can be performed. The commands in the two command streams need to be serialized so that they are processed in the correct order.
Existing solutions are limited to a single graphical context, such as OpenGL. Since command streams in other graphical contexts may share a common resource with the OpenGL stream, there is a risk that the commands will not be processed in the proper order, resulting in erroneous behavior and a poor user experience.